package com.liangtian.mdm.material.service;

import com.github.pagehelper.PageInfo;
import com.liangtian.mdm.base.response.BaseResponse;
import com.liangtian.mdm.material.model.WlFh;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 物料符号Service
 *
 */

@SuppressWarnings("rawtypes")
public interface WlFhService {

    /**
     * 获取物料符号列表
     * @param map
     * @return
     */
    public PageInfo getWlFhListByCond(Map<String, Object> map);

    /**
     * 新增物料符号
     * @param wlfh
     * @return
     */
    public int insertWlFh(WlFh wlfh);

    /**
     * 更新物料符号
     * @param wlfh
     */
    public void updateWlFh(WlFh wlfh);

    /**
     * 校验物料符号对象是否存在
     * @param wlfh
     * @return
     */
    public int getWlFhExist(WlFh wlfh);

    /**
     * 根据Id查询物料符号
     * @param wlfh
     * @return
     */
    public WlFh getWlFhById(WlFh wlfh);

    /**
     * 修改时校验物料符号对象是否存在
     * @param wlfh
     * @return
     */
    public int checkWlFhExistByEdit(WlFh wlfh);

    /**
     * 批量删除物料物料符号
     * @param map
     * @return
     */
    public int deleteWlFhByIds(Map<String, Object> map);

    /**
     * 活动/冻结物料物料符号
     * @param wlfh
     */
    public void updateWlFhStatus(WlFh wlfh);

    /**
     * 查询物料符号不分页情况下的列表
     * @param wlfh
     * @return
     */
    public List<WlFh> getWlFhNoPageByCond(WlFh wlfh);

    /**
     * 校验用户输入的数据
     * @param valueList
     * @param tableName
     * @return
     */
    public BaseResponse checkImportList(List<Object[]> valueList, String tableName) throws Exception;

    /**
     * 检查列
     * @param row
     * @param column
     * @param cell
     * @param coll
     * @return
     */
    public String checkColumn(int row, int column, String cell, String[] coll);

    /**
     * 跟sql
     * @param tableName
     * @param subList
     * @param headArray
     * @return
     */
    public List<String> genSql(String tableName, List<Object[]> subList, String[] headArray);

    /**
     * 物料符号导出
     * @param list
     * @param response
     */
    public void exportWlFh(List<WlFh> list, HttpServletResponse response);

    /**
     * 获取物料符号列表2
     * @param map
     * @return
     */
    public PageInfo getWlFhListByCond2(Map<String, Object> map);

    /**
     * 根据主键校验类别模板特征量符号
     * @param map
     * @return
     */
    public int checkLbmbTzlFhByFhWym(Map<String, Object> map);
}
